//中间件里面的参数

// 1.安装  express-session

// cnpm install express-session  --save
// *
// *
// * 2.引入

//  var session = require("express-session");

//  3.设置官方文档提供的中间件

//  app.use(session({
// 	 secret: 'keyboard cat',
// 	 resave: false,
// 	 saveUninitialized: true
//  }))


// 4.使用

// 设置值
//  req.session.username = "张三";

// 获取值 req.session.username


//浏览器关闭数据就会消失






var express = require('express');
var session = require('express-session')
var app = new express()

app.set('trust proxy', 1) // trust first proxy
app.use(session({
    secret: 'this is string', //可以随便写  一个 String 类型的字符串，作为服务器端生成 session 的签名

    name: 'session_id',
    /*保存在本地cookie的一个名字 默认connect.sid  可以不设置*/
    resave: false,
    /*强制保存 session 即使它并没有变化,。默认为 true。建议设置成 false。*/

    saveUninitialized: true, //强制将未初始化的 session 存储。  默认值是true  建议设置成true

    cookie: {
        maxAge: 1000*30*60,
        /*过期时间*/
        // secure: true //设置位true的话就只能在https 里面使用了
        
	//设置过期时间比如是30分钟，只要游览页面，30分钟没有操作的话在过期
    },
    rolling:true //在每次请求时强行设置 cookie，这将重置 cookie 过期时间（默认：false）
}))


app.get('/', function (req, res) {
    //获取session
    if (req.session.userinfo) {
        res.send('你好' + req.session.userinfo + "欢迎回来")
    } else {
        res.send("您未登录")
    }

});

app.get('/login', function (req, res) {
    req.session.userinfo = '邵康'; //设置session
    res.send('session 登录')
});

//注销功能,销毁session
app.get('/logout', function (req, res) {
    //     1.设置cookie销毁
    // req.session.cookie.maxAge = 0; //设置session .cookie为0,销毁

    req.session.destroy(function(err){
        if(err) console.log(err)
    });


    res.send('session 退出')
});


app.listen(3333, '127.0.0.1')